asctime関数とctime関数は、日時情報及び、紀元(1970年1月1日00:00:00 UTC)からの経過秒数を英語表現の文字列に変換します。なお、日時情報はgmtime関数とlocaltime関数で取得することができますし、経過秒数はtime関数で取得することができます。
#include <time.h>
char *asctime(const struct tm *tm);
char *ctime(const time_t *timep);
*tmは日時情報が格納されているtm構造体を指定します。
*timepは紀元からの経過秒数を指定します。
戻り値として、英語表現の日時の文字列を返します。エラーの場合は、NULLを返します。
ctime関数は自動的にローカル時間への変換を行いますので、time関数で取得した経過秒数は、そのまま引数に指定してかまいません。
英語表現の日時の形式は、両方の関数で同じです。なお、文字列の最後に改行文字が入っていますので注意してください。
プログラム 例
#include <stdio.h>
#include <time.h>
int main()
{
time_t timep;
struct tm *time_inf;
/* 紀元からの経過秒数を得る */
timep = time(NULL);
/* ローカル標準時へ変換 */
time_inf = localtime(&timep);
/* 表示 */
printf('asctime関数:%s', asctime(time_inf));
printf('ctime関数:%s', ctime(&timep));
return 0;
}
例の実行結果
$ ./asctime.exe asctime関数:Thu Jul 24 14:42:09 2008 ctime関数:Thu Jul 24 14:42:09 2008 $